// 引入express框架
const express = require('express')
// 路径处理模块
const path = require('path')
// 3.7-1
const fs = require('fs')
// 创建web服务器
const app = express()
// 静态资源访问服务功能，拦截所有的请求，然后交给静态文件处理
app.use(express.static(path.join(__dirname, 'public')))
console.log(path.join(__dirname, 'public'))
// 5.4-2.2, b1
app.use(express.json())

app.get('/first', (req, res) => {
  res.send('Hello Ajax')
})

app.get('/responseDate', (req, res) => {
  res.send({ name: 'zs' })
})
// a1
app.get('/get', (req, res) => {
  // 在服务器端，接收客户端传来的get请求参数
  let res2 = res
  res.send(req.query)

  // res.send('Hello Ajax');
})
// 5.4-3  b1
app.post('/json', (req, res) => {
  res.send(req.body)
})

app.get('/readyState', (req, res) => {
  res.send('hellow')
})

app.get('/error', (req, res) => {
  // 故意写一个打印没有的变量，实现状态码500
  // console.log(avb);
  // status是服务器端的方法，用来设置http状态码（不是获取么）
  res.status(400).send('not ok')
})

app.get('/cache', (req, res) => {
  fs.readFile('./test.txt', (err, result) => {
    res.send(result)
  })
})

// 邮箱地址验证
app.get('/verifyEmailAdress', (req, res) => {
  // 接收客户端传递过来的邮箱地址
  const email = req.query.email
  console.log('email', email)
  // 判断邮箱地址注册过的情况
  if (email == 'itheima@itcast.cn') {
    // 设置http状态码并对客户端做出响应
    res.status(400).send({ message: '邮箱地址已经注册过了, 请更换其他邮箱地址' })
  } else {
    // 邮箱地址可用的情况
    // 对客户端做出响应
    console.log('email可用', email)
    res.send({ message: '恭喜, 邮箱地址可用' })
  }
})

app.get('/base', (req, res) => {
  let result = {
    name: 'zhaoliu',
    age: 35
  }
  res.send(result)
})

// 监听端口
app.listen(3000)
// 控制台提示输出
console.log('服务器启动成功')
